A web browser is a software application used for retrieving, presenting and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier (URI) and may be a web page, image, video or other piece of content. A web browser can also be defined as an application software program designed to enable users to access, retrieve and view documents and other resources on the Internet. Although browsers are primarily intended for use with the World Wide Web, they can also be used to access information provided by servers in private networks or files in file systems. Generally, a user enters the URI into an appropriate field in the web browser, and the browser retrieves and displays the corresponding resource (e.g., the web page). In many cases, the resource may be hosted on a remote web server which is accessible over a network (such as the Internet).
Given that the resource is located remotely, there is an inherent time delay in retrieving the resource over the network and displaying it in the browser. In some cases, this delay may be referred to as “network latency.” The network latency may adversely affect a user's experience, as the user is forced to wait some period of time before the requested resource is available to be viewed. In order to reduce the perceived network latency, certain web browsers include a web cache (also referred to as a “browser cache”). The web cache is a mechanism for the temporary storage (i.e., caching) of resources, such as web pages, to reduce bandwidth usage and the perceived network latency. The web cache stores copies of resources requested by the browser, so that subsequent requests for the same resource may be satisfied from the cache, rather than from the remote web server. Typically, retrieving a resource from the local cache will be faster than retrieving the resource from the remote web server.
In many cases, web pages and other resources are updated over time with new content. Thus, depending on when the web page was cached, it is possible that the cached copy of a web page no longer matches the current web page provided by the web server. It is important to the user experience that the browser displays the most recent content in response to a user request for a resource. Therefore, when retrieving a resource from the local cache, most web browsers will verify that the there have been no updates to the cached content (i.e., that the cached content is not out-of-date) before displaying the cached copy of the web page. This verification may also take some amount of time (though probably less time than retrieving the entire resource from the web server), so the requested web page may still not be available instantly. Some conventional browsers display a static image of the cached content (which may be faded out to indicate that it is just an image, for example) during the time that the verification is taking place. In this case, however, the browser does not display a functional page that the user can interact with, and the user is forced to wait until the verification, and potentially the download of the new version of the page if the cached copy is stale, is complete. This delay can adversely affect the user experience.